<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>2404. 出现最频繁的偶数元素</title>
  </head>
  <body>
    <script>
      //     给你一个整数数组 nums ，返回出现最频繁的偶数元素。

      // 如果存在多个满足条件的元素，只需要返回 最小 的一个。如果不存在这样的元素，返回 -1 。

      //

      // 示例 1：

      // 输入：nums = [0,1,2,2,4,4,1]
      // 输出：2
      // 解释：
      // 数组中的偶数元素为 0、2 和 4 ，在这些元素中，2 和 4 出现次数最多。
      // 返回最小的那个，即返回 2 。
      // 示例 2：

      // 输入：nums = [4,4,4,9,2,4]
      // 输出：4
      // 解释：4 是出现最频繁的偶数元素。
      // 示例 3：

      // 输入：nums = [29,47,21,41,13,37,25,7]
      // 输出：-1
      // 解释：不存在偶数元素。
      //

      // 提示：

      // 1 <= nums.length <= 2000
      // 0 <= nums[i] <= 105

      // 来源：力扣（LeetCode）
      // 链接：https://leetcode.cn/problems/most-frequent-even-element
      // 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
      /**
       * @param {number[]} nums
       * @return {number}
       */
      var mostFrequentEven = function (nums) {
        let map = new Map()
        nums.forEach((num) => {
          if (num % 2 === 0) {
            if (map.get(num)) {
              map.set(num, map.get(num) + 1)
            } else {
              map.set(num, 1)
            }
          }
        })
        debugger
        let result = -1
        let count = 0
        for (const [key, value] of map) {
          if (value >= count) {
            if (value === count) {
              result = key > result ? result : key
            } else {
              result = key
            }
            count = value
          }
        }
        return result
      }
      console.log(mostFrequentEven([0, 1, 2, 2, 4, 4, 1]))
    </script>
  </body>
</html>
